|
|
| Menu location |
|---|
| Modificación → Herramientas de matriz → Matriz de ruta Modicar → Matriz de ruta |
| Workbenches |
| {{{Workbenches}}} |
| Default shortcut |
| None |
| Introduced in version |
| 0.14 |
| See also |
| Borrador Matriz Ortogonal, Borrador Matriz Polar, Borrador Matriz Circular, Borrador Matriz de Enlaces de Ruta, Borrador Matriz de Puntos, Borrador Matriz de enlaces de Puntos |
El comando Borrador Matriz de Ruta crea una matriz regular a partir de un objeto seleccionado colocando copias a lo largo de una ruta. Utilice el comando Borrador Matriz de Enlace de Ruta para crear una Matriz de Enlace más eficiente. Excepto por el tipo de matriz que se crea, matriz Link o matriz regular, el comando Borrador Matriz de Enlace de Ruta es idéntico a este comando.
Ambos comandos se pueden usar en objetos 2D creados con el Entorno de Trabajo de Borrador o el Entorno de Trabajo de Boceto, pero también en muchos objetos 3D como los creados con el Ambiente de Trabajo de Pieza, el Entorno de Trabajo de Diseño de Pieza o el Entorno de Trabajo de Arquitectura.
Borrador Matriz de Ruta
La alineación de los elementos en un Borrador Matriz de Ruta depende de las propiedades de la matriz y de la orientación del objeto de origen. La posición del objeto de origen se ignora: para la matriz, x, y y z se establecen en 0. Si la propiedad DatosAlinear de la matriz se establece en false, la orientación de los elementos de la matriz es idéntica a la del objeto de origen. Si se establece en true, el eje X del sistema de coordenadas local de la ubicación de cada elemento es tangente a la ruta. Los ejes Y y Z de los sistemas de coordenadas locales dependen de la propiedad DatosModo de Alinear de la matriz. Otras propiedades de la matriz que intervienen en la alineación incluyen DatosVector Tangente, DatosFuerza vertical y DatosVector Vertical.
3 matrices basadas en la misma ruta no planar. De izquierda a derecha: Alinear es falso, Alinear es verdadero con el modo de alineación original y Alinear es verdadero con el modo de alineación Frenet.
Hay tres modos disponibles:
Este modo es el más parecido al Datosmodo de alineación único disponible en la versión 0.18. Se basa en un vector normal fijo. Si la trayectoria es plana, este vector es perpendicular al plano de la trayectoria; de lo contrario, se utiliza un vector predeterminado, el eje Z positivo. A partir de este vector normal y el vector tangente local (el eje X local), se calcula un producto vectorial [1]. Este nuevo vector se utiliza como eje Z local. La orientación del eje Y local se determina a partir de los ejes X y Z locales.
Este modo utiliza el vector normal local derivado de la trayectoria en cada ubicación de elemento. Si este vector no se puede determinar (por ejemplo, en el caso de un segmento recto), se utiliza un vector predeterminado, nuevamente el eje Z positivo. Con este vector y el vector tangente local, se determina el sistema de coordenadas local mediante el mismo procedimiento descrito en el párrafo anterior.
Este modo es similar al DatosModo de Alineación Original pero incluye la posibilidad de pre-rotar el objeto de origen especificando un DatosVector tangente.
Estas propiedades solo están disponibles si el DatosMode de Alineación es Original o Tangente. Si la DatosFuerza Vertical se establece en true, el sistema de coordenadas local se calcula de manera diferente. El DatosVector Vertical se utiliza como un vector normal fijo. A partir de este vector normal y el vector tangente local (el eje X local), se calcula nuevamente un producto vectorial. Pero ahora este vector se utiliza como el eje Y local. La orientación del eje Z local se determina a partir de los ejes X e Y locales.
El uso de estas propiedades se puede necesitar si uno de los bordes del camino es (casi) paralelo a la normal predeterminada del camino.
Véase también:Vista de propiedad.
Un objeto Boceto Matriz de Ruta se deriva de un objeto Característica de la pieza y hereda todas sus propiedades (con la excepción de algunas propiedades de Vista que no son heredadas por los arreglos Enlace). Las siguientes propiedades son adicionales a menos que se indique lo contrario:
Enlace
Las propiedades de este grupo solo están disponibles para Matrices de Enlace. Consulte Matriz de Enlace Estándar para obtener más información.
Float)Vector)VectorList)BoolList)PlacementList)LinkList)Bool)LinkList)Integer)LinkSubHidden)Enumeration)Bool)Alineación
Bool): especifica si los elementos de la matriz están alineados a lo largo de la ruta o no. Si es false, todas las demás propiedades de este grupo, excepto DatosTraslación Extra, no se aplican y se ocultan.Enumeration): especifica el modo de alineación, que puede ser Original, Frenet o Tangente.VectorDistance): especifica un desplazamiento adicional para cada elemento a lo largo de la ruta.Bool): especifica si se debe sobrescribir la dirección normal predeterminada con el valor de DatosVector Vertical. Solo se usa si DatosModo de alineación es Original o Tangente.Bool): especifica si se debe recorrer la ruta en sentido inverso. introduced in 1.1Vector): especifica el vector de alineación. Solo se usa si DatosModo de alineación es Tangente.Vector): especifica la anulación de la dirección normal predeterminada. Solo se usa si DatosVector Vertical es true.Boceto
Bool)Objectos
LinkGlobal): especifica el objeto que se duplicará en la matriz.Bool): especifica si se debe expandir la matriz en la Vista de Árbol para permitir la selección de sus elementos individuales. Solo disponible para matrices de enlaces.Bool): especifica si los elementos superpuestos en la matriz se fusionan o no. introduced in 1.0LinkGlobal): especifica el objeto que se utilizará para la ruta. Debe contener Bordes en su Part TopoShape.LinkSubListGlobal): especifica una lista de aristas del DatosObjeto Ruta. Si se proporciona, solo se utilizarán estas aristas para la ruta.PlacementList): la ubicación de cada elemento. Aparece en el grupo Enlace para las Matrices de Enlace. introduced in 1.1Espaciado
Entero): especifica el número de elementos en la matriz.Longitud): especifica la longitud desde el final de la ruta hasta la última copia. Debe ser menor que la longitud de la ruta menos el DatosComenzar Offset. introduced in 0.21Enumeración): especifica cómo se espacian los elementos. Las opciones son: introduced in 1.1
Recuento Fijo: la longitud de ruta disponible (menos los desplazamientos inicial y final) se divide uniformemente para acomodar el Datoscontar elementos.Espacido Fijado: comienza en el desplazamiento inicial y coloca nuevos elementos después de recorrer una distancia fija a lo largo de la ruta.Recuento y espaciado fijos: igual que Espaciado fijo, pero también se detiene en DatosRecuento elementos.Lista flotante): el espaciado se multiplica por un número correspondiente en esta secuencia. Solo se usa si DatosUsar patrón de espaciado es true; de lo contrario, se oculta. introduced in 1.1Longitud): la distancia base fija entre elementos. Solo se usa si DatosModo de espaciado es Espaciado fijo o Recuento y espaciado fijos; de lo contrario, se oculta. introduced in 1.1Longitud): especifica la longitud desde el inicio de la ruta hasta la primera copia. Debe ser menor que la longitud de la ruta. introduced in 0.21Bool): utiliza patrones de espaciado repetitivos en lugar de espaciado uniforme. introduced in 1.1
Enlace
Las propiedades de este grupo, con la excepción de la propiedad heredada, solo están disponibles para matrices de Enlace. Consulte Matrices de Enlace Enlace para obtener más información.
Enumeración)Restricción de flotación)Bool)Restricción de flotación)Bool): esta es una propiedad heredada que aparece en el grupo Selección para otras matrices.Material)Base
Las propiedades de este grupo, con la excepción de la propiedad heredada, solo están disponibles para matrices de Enlace. Consulte Matrices de Enlace Estándar para obtener más información.
PersistentObject)MaterialList)ColorList)BoolList)PythonObject): esta es una propiedad heredada.Opciones de visualización
Las propiedades de este grupo son propiedades heredadas. Consulte Características de Pieza para obtener más información.
Bool): esta propiedad no se hereda en las Matrices de Enlace.Enumeration): para las Matrices de Enlace, puede ser Link o ChildView. Para otras matrices, puede ser: Líneas planas, Sombreado, Estructura alámbrica o Puntos.Bool)Bool)Borrador
Enumeración): no utilizado.Flotar): no utilizado.Estilo de objeto
Las propiedades de este grupo no se heredan en las Matrices de Enlace.
Véase también: Documentación de la API autogenerada y Conceptos básicos de scripting de FreeCAD.
Para crear una Matriz de Ruta, utilice el método make_path_array (introduced in 0.19) del módulo Borrador. Este método reemplaza al método obsoleto makePathArray.
path_array = make_path_array(base_object, path_object,
count=4, extra=App.Vector(0, 0, 0), subelements=None,
align=False, align_mode="Original", tan_vector=App.Vector(1, 0, 0),
force_vertical=False, vertical_vector=App.Vector(0, 0, 1),
use_link=True)
base_object es el objeto que se va a incluir en el array. También puede ser la Label (cadena de texto) de un objeto del documento actual.path_object es el objeto de ruta. También puede ser la Label (cadena de texto) de un objeto del documento actual.count es el número de elementos de la matriz.extra es un vector que desplaza cada elemento.subelements es una lista de aristas de path_object, por ejemplo ["Edge1", "Edge2"]. Si se proporciona, solo se usarán estas aristas para la ruta.align es True, los elementos se alinean a lo largo de la ruta según el valor de align_mode, que puede ser "Original", "Frenet" o "Tangent".tan_vector es un vector unitario que define la dirección tangente local de los elementos a lo largo de la ruta. Se utiliza cuando align_mode es "Tangent".Si force_vertical es True, vertical_vector se utiliza para la dirección Z local de los elementos a lo largo de la ruta. Se utiliza cuando align_mode es "Original" o "Tangent". * Si use_link es True, los elementos creados son App Links en lugar de copias normales.
path_array se devuelve con el objeto array creado.Ejemplo:
import FreeCAD as App
import Draft
doc = App.newDocument()
p1 = App.Vector(500, -1000, 0)
p2 = App.Vector(1500, 1000, 0)
p3 = App.Vector(3000, 500, 0)
p4 = App.Vector(4500, 100, 0)
spline = Draft.make_bspline([p1, p2, p3, p4])
obj = Draft.make_polygon(3, 500)
path_array = Draft.make_path_array(obj, spline, 6)
doc.recompute()
wire = Draft.make_wire([p1, -p2, -p3, -p4])
path_array2 = Draft.make_path_array(obj, wire, count=3, extra=App.Vector(0, -500, 0), subelements=["Edge2", "Edge3"], align=True, force_vertical=True)
doc.recompute()